package com.demo.java.OD151_200.OD177;

import java.util.*;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【卡片组成的最大数字】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145858356
 */
public class OdMain {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 读取输入的数字，分隔为字符串数组
        String[] str = scanner.nextLine().split(",");
        int len = str.length;

        // 使用自定义的比较规则对字符串数组进行排序
        Arrays.sort(str, (a, b) -> {
            // 比较两个拼接后的字符串 a + b 和 b + a 的大小
            // 如果 a + b 大于 b + a，a 排在前面，否则 b 排在前面
            return (b + a).compareTo(a + b);
        });

        // 处理排序后的结果，避免出现前导零
        StringBuilder result = new StringBuilder();
        for (String s : str) {
            result.append(s);
        }

        // 处理特殊情况：如果结果是全零，则返回 "0"
        if (result.charAt(0) == '0') {
            System.out.println("0");
        } else {
            System.out.println(result.toString());
        }

        scanner.close();
    }
}